
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>测试报告</title>
    <meta name="generator" content="HTMLTestReport 0.0.1"/>
    <link rel="stylesheet" href="http://unpkg.com/layui@2.6.8/dist/css/layui.css">
    
<style type="text/css">
    .title { width: auto; height: 60px; text-align: center; font: bolder 38px/60px "Microsoft YaHei UI"; color: #009688; }
    .summary span { font: normal 16px/38px "Microsoft YaHei UI"; margin-left: 20px; }
    .success-btn { background-color: #28a745; }
    .skip-btn { background-color: #84898c; }
    .passClass  { background-color: #bdedbc; }
    .failClass  { background-color: #ffefa4; }
    .errorClass { background-color: #ffc9c9; }
    .passCase   { color: #5cb85c; }
    .skipCase   { color: #84898c; }
    .failCase   { color: #FF6600; font-weight: bold; }
    .errorCase  { color: #c00; font-weight: bold; }
    .hiddenRow  { display: none; }
    .testcase   { margin-left: 2em; }
    .layui-table tbody tr:hover, .layui-table-click, .layui-table-header, .layui-table-hover, .layui-table-mend, .layui-table-patch, .layui-table-tool, .layui-table[lay-even] tr:nth-child(even) {
        background-color: transparent;
    }
</style>

    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
</head>
<body>
    <script language="javascript" type="text/javascript"><!--
    output_list = Array();
    function showCase(level) {
        trs = document.getElementsByTagName("tr");
        for (var i = 0; i < trs.length; i++) {
            tr = trs[i];
            id = tr.id;
            if (id.substr(0,2) == 'ft') {
                if (level == 2 || level == 0) {
                    tr.className = 'hiddenRow';
                }
                else {
                    tr.className = '';
                }
            }
            if (id.substr(0,2) == 'pt') {
                if (level < 2) {
                    tr.className = 'hiddenRow';
                }
                else {
                    tr.className = '';
                }
            }
        }      
    }
    function showClassDetail(cid, count) {
        var id_list = Array(count);
        var toHide = 1;
        for (var i = 0; i < count; i++) {
            tid0 = 't' + cid.substr(1) + '.' + (i+1);
            tid = 'f' + tid0;
            tr = document.getElementById(tid);
            if (!tr) {
                tid = 'p' + tid0;
                tr = document.getElementById(tid);
            }
            id_list[i] = tid;
            if (tr.className) {
                toHide = 0;
            }
        }
        for (var i = 0; i < count; i++) {
            tid = id_list[i];
            if (toHide) {
                document.getElementById(tid).className = 'hiddenRow';
            }
            else {
                document.getElementById(tid).className = '';
            }
        }
    }
    function showTestDetail(div_id){
        var details_div = document.getElementById(div_id)
        var displayState = details_div.style.display
        if (displayState == 'block' || displayState == '' ) {
            details_div.style.display = 'none'
        }
        else {
            displayState = 'block'
            details_div.style.display = 'block'
        }
    }
    function html_escape(s) {
        s = s.replace(/&/g,'&amp;');
        s = s.replace(/</g,'&lt;');
        s = s.replace(/>/g,'&gt;');
        return s;
    }
    --></script>
    <div class="layui-container">
        
    <!--报告标题-->
    <div class="title">测试报告</div>
    
    <!--汇总信息-->
    <fieldset class="layui-elem-field summary">
        <legend>测试结果汇总</legend>
        <div class="layui-field-box">
            <table class="layui-table">
                <colgroup>
                    <col width="50%">
                    <col width="50%">
                </colgroup>
                <tbody>
                    <tr>
                        <td>
                            <button type="button" class="layui-btn">开始时间</button>
                            <span class="text-dark">2024-09-27 18:27:03</span>
                        </td>
                        <td>
                            <button type="button" class="layui-btn">执行时间</button>
                            <span class="text-dark">0:01:12.439500 s</span>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <button type="button" class="layui-btn">用例总数</button>
                            <span class="text-dark">2</span>
                        </td>
                        <td>
                            <button type="button" class="layui-btn">通过率</button>
                            <span class="text-dark">50.00%</span>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2">
                            <button type="button" class="layui-btn">描述信息</button>
                            <span class="text-dark"></span>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" align="center">
                            <button type="button" class="layui-btn success-btn">成功用例：1</button>
                            <button type="button" class="layui-btn layui-btn-warm">失败用例：0</button>
                            <button type="button" class="layui-btn layui-btn-danger">错误用例：1</button>
                            <button type="button" class="layui-btn skip-btn">跳过用例：0</button>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
    </fieldset>
    
    <!--图表展示-->
    <fieldset class="layui-elem-field summary">
        <legend>图表展示</legend>
        <div class="layui-field-box">
            <div class="char">
                <div id="chart1" style="width: 49%;height: 400px;float: left"></div>
                <div id="chart2" style="width: 49%;height: 400px;float: left"></div>
            </div>
        </div>
    </fieldset>

        
    <fieldset class="layui-elem-field summary">
        <legend>详细信息</legend>
        <div class="layui-field-box">
            <table id='result_table' class="layui-table">
            <thead>
                <tr id='header_row' style='background-color: #009688; color: #fff'>
                    <th>测试用例</th>
                    <th>总数</th>
                    <th>通过</th>
                    <th>失败</th>
                    <th>错误</th>
                    <th>跳过</th>
                    <th>操作</th>
                </tr>
                </thead>
				<tbody>
                
    <tr class='errorClass'>
        <td class="text-center">test01_app_login.TestLogin</td>
        <td class="text-center">1</td>
        <td class="text-center">0</td>
        <td class="text-center">0</td>
        <td class="text-center">1</td>
        <td class="text-center">0</td>
        <td class="text-center"><button type="button" class="layui-btn layui-btn-xs" onclick="showClassDetail('c1',1)">详细</button></td>
    </tr>

<tr id='ft1.1' class=''>
    <td class='errorCase'><div class='testcase'>test01_app_login_order_0__</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_ft1.1')">
        错误</a>
    </td>
    <td colspan='5'>
    <div id='div_ft1.1' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>ft1.1: --- Logging error ---
Traceback (most recent call last):
  File "D:\Program Files\python\lib\logging\__init__.py", line 992, in emit
    msg = self.format(record)
  File "D:\Program Files\python\lib\logging\__init__.py", line 838, in format
    return fmt.format(record)
  File "D:\Program Files\python\lib\logging\__init__.py", line 575, in format
    record.message = record.getMessage()
  File "D:\Program Files\python\lib\logging\__init__.py", line 338, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
  File "E:\UI02\run_suite.py", line 9, in &lt;module&gt;
    HTMLTestReport(file_path).run(suite)
  File "D:\Program Files\python\lib\site-packages\htmltestreport\core.py", line 182, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\suite.py", line 122, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\suite.py", line 122, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\suite.py", line 122, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\case.py", line 653, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\case.py", line 601, in run
    self.setUp()
  File "E:\UI02\script\test01_app_login.py", line 15, in setUp
    self.app = PageAppLogin(self.driver)
  File "E:\UI02\base\base.py", line 13, in __init__
    log.info("正在初始化，driver对象：{}",format(driver))
Message: '正在初始化，driver对象：{}'
Arguments: ('&lt;appium.webdriver.webdriver.WebDriver (session="7a3e8711-1d29-4e53-9d86-d1cc1cf7e40a")&gt;',)
--- Logging error ---
Traceback (most recent call last):
  File "D:\Program Files\python\lib\logging\__init__.py", line 992, in emit
    msg = self.format(record)
  File "D:\Program Files\python\lib\logging\__init__.py", line 838, in format
    return fmt.format(record)
  File "D:\Program Files\python\lib\logging\__init__.py", line 575, in format
    record.message = record.getMessage()
  File "D:\Program Files\python\lib\logging\__init__.py", line 338, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
  File "E:\UI02\run_suite.py", line 9, in &lt;module&gt;
    HTMLTestReport(file_path).run(suite)
  File "D:\Program Files\python\lib\site-packages\htmltestreport\core.py", line 182, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\suite.py", line 122, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\suite.py", line 122, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\suite.py", line 122, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\case.py", line 653, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\case.py", line 601, in run
    self.setUp()
  File "E:\UI02\script\test01_app_login.py", line 17, in setUp
    self.order = PageAppOrder(self.driver)
  File "E:\UI02\base\base.py", line 13, in __init__
    log.info("正在初始化，driver对象：{}",format(driver))
Message: '正在初始化，driver对象：{}'
Arguments: ('&lt;appium.webdriver.webdriver.WebDriver (session="7a3e8711-1d29-4e53-9d86-d1cc1cf7e40a")&gt;',)
正在查找：('xpath', "//*[@text='同意']")
正在查找：('xpath', "//*[@class='android.widget.LinearLayout']")
正在查找：('xpath', "//*[@resource-id='cn.ischinese.zzh:id/user_id_et']")
正在查找：('xpath', "//*[@resource-id='cn.ischinese.zzh:id/user_psw_et']")
正在查找：('xpath', "//*[@resource-id='cn.ischinese.zzh:id/agree_url']")
正在查找：('xpath', "//*[@resource-id='cn.ischinese.zzh:id/login_tv']")
正在查找：('xpath', "//*[@resource-id='cn.ischinese.zzh:id/dialog_cancel']")
正在查找：('xpath', "//*[@text='我的']")
正在查找：('xpath', "//*[@resource-id='cn.ischinese.zzh:id/tv_user_name']")
登录的昵称为： 史庆鑫测试二零二一
正在查找：('xpath', "//*[@text='精品课']")
正在查找：('xpath', "//*[@resource-id='cn.ischinese.zzh:id/iv_search']")
正在查找：('xpath', "//*[@resource-id='cn.ischinese.zzh:id/ed_search']")
正在查找：('xpath', "//*[@resource-id='cn.ischinese.zzh:id/iv_add_cart']")
正在查找：('xpath', "//*[@resource-id='cn.ischinese.zzh:id/tv_to_shopping']")
Traceback (most recent call last):
  File "E:\UI02\script\test01_app_login.py", line 30, in test01_app_login_order
    self.order.page_app_order(vlaue)
  File "E:\UI02\page\page_app_order.py", line 56, in page_app_order
    self.page_app_click_shopcart()
  File "E:\UI02\page\page_app_order.py", line 29, in page_app_click_shopcart
    self.base_click(page.app_shopcart)
  File "E:\UI02\base\base.py", line 25, in base_click
    self.base_find(loc).click()
  File "E:\UI02\base\base.py", line 20, in base_find
    return WebDriverWait(self.driver, timeout, poll_frequency).until(lambda x: x.find_element(*loc))
  File "D:\Program Files\python\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\Program Files\python\lib\site-packages\parameterized\parameterized.py", line 533, in standalone_func
    return func(*(a + p.args), **p.kwargs)
  File "E:\UI02\script\test01_app_login.py", line 35, in test01_app_login_order
    log.eror(e)
AttributeError: 'RootLogger' object has no attribute 'eror'
</pre>
        </blockquote>
    </div>
    </td>
</tr>

    <tr class='passClass'>
        <td class="text-center">test02_web_login_order.TestWebLogin</td>
        <td class="text-center">1</td>
        <td class="text-center">1</td>
        <td class="text-center">0</td>
        <td class="text-center">0</td>
        <td class="text-center">0</td>
        <td class="text-center"><button type="button" class="layui-btn layui-btn-xs" onclick="showClassDetail('c2',1)">详细</button></td>
    </tr>

<tr id='pt2.1' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test01_page_web_login_order</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt2.1')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt2.1' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt2.1: --- Logging error ---
Traceback (most recent call last):
  File "D:\Program Files\python\lib\logging\__init__.py", line 992, in emit
    msg = self.format(record)
  File "D:\Program Files\python\lib\logging\__init__.py", line 838, in format
    return fmt.format(record)
  File "D:\Program Files\python\lib\logging\__init__.py", line 575, in format
    record.message = record.getMessage()
  File "D:\Program Files\python\lib\logging\__init__.py", line 338, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
  File "E:\UI02\run_suite.py", line 9, in &lt;module&gt;
    HTMLTestReport(file_path).run(suite)
  File "D:\Program Files\python\lib\site-packages\htmltestreport\core.py", line 182, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\suite.py", line 122, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\suite.py", line 122, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\suite.py", line 122, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\case.py", line 653, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\case.py", line 601, in run
    self.setUp()
  File "E:\UI02\script\test02_web_login_order.py", line 14, in setUp
    self.weblogin = PageWebLogin(self.driver)
  File "E:\UI02\base\base.py", line 13, in __init__
    log.info("正在初始化，driver对象：{}",format(driver))
Message: '正在初始化，driver对象：{}'
Arguments: ('&lt;selenium.webdriver.chrome.webdriver.WebDriver (session="9b75b3a8c6ab1576e21a94d48caa51f9")&gt;',)
--- Logging error ---
Traceback (most recent call last):
  File "D:\Program Files\python\lib\logging\__init__.py", line 992, in emit
    msg = self.format(record)
  File "D:\Program Files\python\lib\logging\__init__.py", line 838, in format
    return fmt.format(record)
  File "D:\Program Files\python\lib\logging\__init__.py", line 575, in format
    record.message = record.getMessage()
  File "D:\Program Files\python\lib\logging\__init__.py", line 338, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
  File "E:\UI02\run_suite.py", line 9, in &lt;module&gt;
    HTMLTestReport(file_path).run(suite)
  File "D:\Program Files\python\lib\site-packages\htmltestreport\core.py", line 182, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\suite.py", line 122, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\suite.py", line 122, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\suite.py", line 122, in run
    test(result)
  File "D:\Program Files\python\lib\unittest\case.py", line 653, in __call__
    return self.run(*args, **kwds)
  File "D:\Program Files\python\lib\unittest\case.py", line 601, in run
    self.setUp()
  File "E:\UI02\script\test02_web_login_order.py", line 15, in setUp
    self.weborder = PageWebOrder(self.driver)
  File "E:\UI02\base\base.py", line 13, in __init__
    log.info("正在初始化，driver对象：{}",format(driver))
Message: '正在初始化，driver对象：{}'
Arguments: ('&lt;selenium.webdriver.chrome.webdriver.WebDriver (session="9b75b3a8c6ab1576e21a94d48caa51f9")&gt;',)
正在查找：('css selector', '.loginspan')
正在查找：('css selector', '.login_idCardInput')
正在查找：('css selector', '.login_pwdInput')
正在查找：('css selector', '.el-checkbox__inner')
正在查找：('css selector', '.login_submit')
正在查找：('css selector', '.user-name-span')
登录后的昵称为: 史庆鑫测...
正在查找：('css selector', '.user-name-span')
正在查找：('xpath', "//b[text()='我的订单']")
正在查找：('xpath', "//span[text()='删除订单']")
正在查找：('xpath', "//*[@class='el-button el-button--default el-button--small el-button--primary ']")
正在查找：('xpath', "//*[@class='el-button el-button--default el-button--small el-button--primary ']")
正在查找：('xpath', "//div[@class='tophead'][1]/span[1]")
正在查找：('xpath', "//div[@class='tophead'][1]/span[1]")
订单号为： 订单号：C202409271803390000134
</pre>
        </blockquote>
    </div>
    </td>
</tr>

                </tbody>
                <tr id='total_row' class="text-center active">
                    <td align="right">总计</td>
                    <td>2</td>
                    <td>1</td>
                    <td>0</td>
                    <td>1</td>
                    <td>0</td>
                    <td></td>
                </tr>
            </table>
        </div>
	</fieldset>

        <a href="#">
    <ul class="layui-fixbar"><li class="layui-icon layui-fixbar-top" lay-type="top" style="display: list-item;"></li></ul>
    </a>
    
        
    <script type="text/javascript">
        // 初始化echarts实例
        var myChart1 = echarts.init(document.getElementById('chart1'));
        var myChart2 = echarts.init(document.getElementById('chart2'));
        // 指定图表的配置项和数据
        option1 = {
            tooltip: {
                formatter: '{a} <br/>{b} : {c}%'
            },
            toolbox: {
                feature: {
                    restore: {},
                    saveAsImage: {}
                }
            },
            series: [{
                name: '测试结果',
                type: 'gauge',
                detail: {
                    formatter: '50.00%'
                },
                data: [{
                    value: '50.00',
                    name: '用例通过率'
                }],
                axisLine: {
                    lineStyle: {
                        color: [
                            [0.2, '#c20000'],
                            [0.8, '#ddb518'],
                            [1, '#00a10a']
                        ]
                    }
                }
            }]
        };
        option2 = {
            color: ['#00a10a', '#ddb518', 'rgba(204,46,41,0.73)', '#85898c'],
            tooltip: {
                trigger: 'item',
                formatter: '{a} <br/>{b}: {c} ({d}%)'
            },
            legend: {
                orient: 'vertical',
                left: 10,
                data: ['通过', '失败', '错误', '跳过']
            },
            series: [{
                name: '测试结果',
                type: 'pie',
                radius: ['50%', '70%'],
                avoidLabelOverlap: false,
                label: {
                    show: false,
                    position: 'center'
                },
                emphasis: {
                    label: {
                        show: true,
                        fontSize: '30',
                        fontWeight: 'bold'
                    }
                },
                labelLine: {
                    show: false
                },
                data: [{
                        value: 1,
                        name: '通过'
                    },
                    {
                        value: 0,
                        name: '失败'
                    },
                    {
                        value: 1,
                        name: '错误'
                    },
                    {
                        value: 0,
                        name: '跳过'
                    }
                ]
            }]
        };

        myChart1.setOption(option1);
        myChart2.setOption(option2);
    </script>
    
    </div>
</body>
</html>
